/**
 *   ДОБАВЛЕНИЕ ЗАЯВЛЕНИЯ РОДИТЕЛЕЙ О ПРИЧИНЕ ПРОПУСКА УРОКОВ
 *   Copyright © 2024, А.М.Гольдин. Modified BSD License
 */
"use strict";

// Аргументы: ["med", "2019-09-02", "2019-09-02", "petrov"]
// Первый аргумент: med - медицинская справка
//                  doc - документ организации</option>
//                  fam - семейные обстоятельства
// Последний аргумент - логин родителя (он же логин ребенка)
// (с фронтенда не передается, подписывается скриптом index.js)
// Возвращает "success" или "none"
module.exports = async (args) => {
   try {
      if (args.length != 4) return "none";
      let vid   = args[0].substr(0,  3).trim(),
          start = args[1].substr(0, 10).trim(),
          fin   = args[2].substr(0, 10).trim(),
          lgn   = args[3].substr(0, 30).trim();

      if (!vid || !start || !fin || !lgn) return "none";
      let dtPatt = /^\d{4}-\d{2}-\d{2}$/;
      if (!dtPatt.test(start) || !dtPatt.test(fin)) return "none";
      if (start > fin) return "none";
      
      // Определяем класс ребенка
      let pupRes = await dbFind("pupils", {Ulogin: lgn});
      if (!pupRes.length) return "none";
      let pupClass = pupRes[0].Uclass;
      
      // Пишем новую запись в базу
      await db.spravki.insert({
         Uclass: pupClass, pupil: lgn, vid: "par",
         start: start, fin: fin, prim: vid, state: "new"
      });
      
      return "success";
   }
   catch(e) {return "none";}
};
